﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Yammu.Core.Playlist;

namespace Yammu.Core.MediaManagement
{
    /// <summary>
    /// This corresponds to a media file stored in the media collection in the software. The difference between this and <see cref="IVFSFile"/>
    /// is: 
    ///     1) This only contains information about the 'media' files (as opposed to all files )which are found in directories configured by the user.
    ///     2) This contains detailed information about the media item (e.g., attributes) and contains only the items in directories which are 
    /// configured by the user  are stored in the database.
    /// </summary>
    public interface IMediaFile : IMediaItem
    {
        
        /// <summary>
        /// Gets the value of the specified attribute
        /// </summary>
        string GetAttributeValue ( string attrName);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="attrName"></param>
        /// <param name="attrValue"></param>
        void SetAttributeValue(string attrName, string attrValue);

        /// <summary>
        /// Getst the names of various media attributes
        /// </summary>
        /// <returns></returns>
        string[] GetAttributeNames();


        /// <summary>
        /// Returns the size of the media
        /// </summary>
        long Size { get; }

        
    }
}
